﻿#region References
using System;
#endregion

namespace Autumoon.IPInformer.Fundamental
{
    public class InformOptionProperty : PropertyBase
    {

        #region Fields and Properties
        private string _receiverInbox = String.Empty;
        public string ReceiverInbox
        {
            get { return this._receiverInbox; }
            set
            {
                if (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()))
                {
                    throw new ArgumentNullException("Receiver's inbox address is empty.");
                }

                this._receiverInbox = value.Trim();
            }
        }

        private string _smtpServerAddress = String.Empty;
        public string SmtpServerAddress
        {
            get { return this._smtpServerAddress; }
            set
            {
                if (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()))
                {
                    throw new ArgumentNullException("SMTP server address is empty.");
                }

                this._smtpServerAddress = value.Trim();
            }
        }

        private string _userName = String.Empty;
        public string UserName
        {
            get { return this._userName; }
            set
            {
                if (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()))
                {
                    throw new ArgumentNullException("User's name is empty.");
                }

                this._userName = value.Trim();
            }
        }

        private string _encryptedPassword = String.Empty;
        public string EncryptedPassword
        {
            get { return this._encryptedPassword; }
            set
            {
                if (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()))
                {
                    throw new ArgumentNullException("Password is empty.");
                }

                this._encryptedPassword = value.Trim();
            }
        }

        private string _senderOutbox = String.Empty;
        public string SenderOutbox
        {
            get { return this._senderOutbox; }
            set
            {
                if (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()))
                {
                    throw new ArgumentNullException("Sender's outbox address is empty.");
                }

                this._senderOutbox = value.Trim();
            }
        }
        #endregion

        #region Constructors
        #endregion

        #region Public Methods
        #endregion

        #region Internal Methods
        #endregion

        #region Protected Methods
        #endregion

        #region Private Methods
        #endregion

        #region Delegates and Events
        #endregion
    }
}